﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UnitOfWorkCore.Domain.Abstractions
{
    public interface IEntity
    {
        /// <summary>  
        /// 获取实体的主要唯一标识符值（可以是复合键）
        /// 相较于单一主键（如使用一个字段来唯一标识一条记录），复合主键将多个字段组合在一起，确保在组合后的这条数据是唯一的
        /// </summary>  
        /// <returns>返回由多个主键构成的对象数组。</returns> 
        object[] GetKeys();
    }

    public interface IEntity<TKey> : IEntity
    {
        /// <summary>  
        /// 实体的唯一标识符，也就是主键
        /// </summary>  
        TKey Id { get; }
    }
}
